package com.biz.lambda;

import com.biz.tool.checker.fun.*;
import com.biz.tool.checker.fun.Predicate;

import java.util.function.*;

/**
 * @Description
 *      优化策略模式需要多次创建类
 * @Author liuxi
 * @Date 2024/5/18
 **/
public interface FunctionStrategy<P, T, R> {

    /**
     * 暴漏当前策略的钩子
     *
     * @return 判断钩子
     */
    Predicate<P> predicate();

    /**
     * 暴漏当前策略的生产逻辑
     *
     * @return 消费逻辑
     */
    Function<T, R> function();

}
